﻿using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MonopolyRandy;

namespace MonopolyRandyTests
{
    [TestClass]
    public class VeldTests
    {
        private Veld _startVeld;
        private StraatVeld _kalverStraat;
        private NutsVeld _nutsVeld;
        private StationVeld _stationVeld;
        private BelastingVeld _belastingVeld;

        [TestInitialize]
        public void Setup()
        {
            _startVeld = new Veld(0, "Start");
            _kalverStraat = new StraatVeld(39, "Kalverstraat", "Amsterdam", 0, 0);
            _nutsVeld = new NutsVeld(12, "nutsveld");
            _stationVeld = new StationVeld(5, "station west");
            _belastingVeld = new BelastingVeld(4, "Inkomstenbelasting", 200);
        }

        [TestMethod]
        public void TestOfVeldNaamKlopt()
        {
            Assert.AreEqual("Start", _startVeld.GetVeldNaam());
            Assert.AreEqual(expected: "Kalverstraat", actual: _kalverStraat.GetVeldNaam());
            Assert.AreEqual("nutsveld", _nutsVeld.GetVeldNaam());
            Assert.AreEqual("station west", _stationVeld.GetVeldNaam());
            Assert.AreEqual("Inkomstenbelasting", _belastingVeld.GetVeldNaam());
        }

        [TestMethod]
        public void TestOfStadNaamKlopt()
        {
            Assert.AreEqual(expected: "Amsterdam", actual: _kalverStraat.GetStadNaam());
        }

        [TestMethod]
        public void TestOfVeldPositieKlopt()
        {
            Assert.AreEqual(0, _startVeld.GetVeldPositie());
            Assert.AreEqual(39, _kalverStraat.GetVeldPositie());
            Assert.AreEqual(12, _nutsVeld.GetVeldPositie());
            Assert.AreEqual(5, _stationVeld.GetVeldPositie());
            Assert.AreEqual(4, _belastingVeld.GetVeldPositie());
        }
    }
}
